package com.tbit.uqbike.webmanager.business.maintain_performance.object.dto.stat;

import com.alibaba.fastjson.annotation.JSONField;
import com.tbit.uqbike.annos.Excel;
import com.tbit.uqbike.webmanager.business.maintain_performance.constant.PerformanceExportField;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 挪车绩效详情
 *
 * @author <a href="mailto:zheng.zebiao@tbit.com.cn">zb</a>
 * @since 2025/2/27
 */
@Data
public class MovePerformanceDetail {
    /**
     * 主键
     */
    private Long performanceId;

    /**
     * 挪车记录id
     */
    private Integer moveLogId;

    /**
     * 绩效系数
     */
    @Excel(name = "绩效系数", sort = 12, conditionBit = PerformanceExportField.Move.performance)
    private BigDecimal performance;

    /**
     * 绩效详情
     */
    @Excel(name = "绩效详情", sort = 13, conditionBit = PerformanceExportField.Move.performanceDetail)
    private String performanceDetail;

    /**
     * 挪车轨迹距离(米)
     */
    @Excel(name = "挪车距离(米)", sort = 9, conditionBit = PerformanceExportField.Move.moveTraceDistance)
    private Integer moveTraceDistance;

    /**
     * 挪车类型 1-站外 2-超区
     */
    @Excel(name = "挪车类型", sort = 6, readConverterExp = "1=站外,2=超区", conditionBit = PerformanceExportField.Move.moveType)
    private Integer moveType;

    /**
     * 挪车首单时效(分钟)
     */
    @Excel(name = "挪车首单时效", sort = 10, suffix = "分钟", conditionBit = PerformanceExportField.Move.firstOrderTime)
    private Integer firstOrderTime;

    /**
     * 挪车24小时订单数
     */
    @Excel(name = "挪车24小时订单数", sort = 11, conditionBit = PerformanceExportField.Move.orderCountAfter24Hour)
    private Integer orderCountAfter24Hour;

    /**
     * 挪车前状态
     */
    @Excel(name = "挪车前状态", sort = 7, conditionBit = PerformanceExportField.Move.beforeStatus)
    private String beforeStatus;

    /**
     * 挪车后状态
     */
    @Excel(name = "挪车后状态", sort = 8, conditionBit = PerformanceExportField.Move.afterStatus)
    private String afterStatus;

    /**
     * 挪车完成时间
     */
    @Excel(name = "日期", sort = 1, dateFormat = "yyyy-MM-dd")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime moveTime;

    /**
     * 车辆编号
     */
    @Excel(name = "车辆编码", sort = 2)
    private String userCode;
    /**
     * 车辆类型
     * 0-电单车 1-自行车
     */
    @Excel(name = "车辆类型", sort = 3, readConverterExp = "0=电单车,1=自行车")
    private Integer machineType;

    /**
     * 区域id
     */
    private Integer accountId;

    /**
     * 分区id
     */
    private Integer regionId;

    /**
     * 运维人员id
     */
    private Integer accountUserId;
    /**
     * 运维人员姓名
     */
    @Excel(name = "运维人姓名", sort = 4)
    private String accountUserName;
    /**
     * 运维人员手机
     */
    @Excel(name = "运维人手机号", sort = 5)
    private String accountUserPhone;
    /**
     * 备注
     */
    @Excel(name = "备注", sort = 14)
    private String remark;
}
